// 把packages目录下的所有包都进行打包

const fs = require('fs') ; 
// 开启子进程 ，进行打包，最终还是使用rollup打包 
const execa = require('execa')


const targets=  fs.readdirSync('packages').filter(f=>{
    // 过滤掉不是目录的文件
    if(!fs.statSync(`packages/${f}`).isDirectory()){
        return false ;
    }
    return true 
})

// 对我们目标进行依次打包，并行打包-异步
async function build(target) { // rollup  -c --environment TARGET:shated
    await execa('rollup',['-c','--environment',`TARGET:${target}`],{stdio:'inherit'})
}
function runParallel(targets,iteratorFn) {
    const res = [ ];
    for (const item of targets) {
       const p =  iteratorFn(item)
       res.push(p)
    }
    return Promise.all(res)
}
runParallel(targets,build)
